From: Jasper St. Pierre Date: Thu, 28 Feb 2013 20:00:59 +0000 (-0500) Subject: workspace: Separate out per-window scaling as a separate variable X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4623 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=1a33de91e222c2502d0702b9e255f0fd32ac0f8c;p=gnome-shell.git workspace: Separate out per-window scaling as a separate variable Multiplication is linear, so we can split this out as a separate component. This will make it easier to think of it as an additional per-window scaling factor, rather than tweaking the scale a bit, which is more correct to the model. https://bugzilla.gnome.org/show_bug.cgi?id=694902 --- diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 14a105774..059d00363 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -589,9 +589,9 @@ const LayoutStrategy = new Lang.Class({ windows: [] }; }, - // Computes and returns a fancy scale for @window using the - // base scale, @scale. - _computeWindowScale: function(window, scale) { + // Computes and returns an individual scaling factor for @window, + // to be applied in addition to the overal layout scale. + _computeWindowScale: function(window) { // Since we align windows next to each other, the height of the // thumbnails is much more important to preserve than the width of // them, so two windows with equal height, but maybe differering @@ -604,8 +604,7 @@ const LayoutStrategy = new Lang.Class({ // good. We'll use a multiplier of 1.5 for this. // Map from [0, 1] to [1.5, 1] - let fancyScale = _interpolate(1.5, 1, ratio) * scale; - return fancyScale; + return _interpolate(1.5, 1, ratio); }, // Compute the size of each row, by assigning to the properties @@ -697,7 +696,7 @@ const LayoutStrategy = new Lang.Class({ for (let j = 0; j < row.windows.length; j++) { let window = row.windows[j]; - let s = this._computeWindowScale(window, scale); + let s = scale * this._computeWindowScale(window); s = Math.min(s, WINDOW_CLONE_MAXIMUM_SCALE); let width = window.actor.width * s; let height = window.actor.height * s; @@ -755,7 +754,7 @@ const UnalignedLayoutStrategy = new Lang.Class({ for (; windowIdx < windows.length; windowIdx++) { let window = windows[windowIdx]; - let s = this._computeWindowScale(window, 1); + let s = this._computeWindowScale(window); let width = window.actor.width * s; let height = window.actor.height * s; row.fullHeight = Math.max(row.fullHeight, height);